public class Main {

    //握手问题
    //前 7 个人互相不握手
    //但这 7 个人会和后面的 42个人进行握手
    public static void main1(String[] args) {
        int ans = 0;
        for (int i = 1; i <= 50 ; i++) {
            for (int j = i + 1; j <= 50 ; j++) {
                if(i <= 7 && j <= 7){
                    // continue 代表跳过此次循环
                    continue;
                }
                ans += 1;
            }
        }
        System.out.println(ans);
    }


    //握手问题的扩展一：
    //如果两个人的编号的和值为偶数，则不握手
    public static void main2(String[] args) {
        int ans = 0;
        for (int i = 1; i <= 50 ; i++) {
            for (int j = i + 1; j <= 50 ; j++) {
                if((i + j) % 2 == 0){
                    continue;
                }
                ans += 1;
            }
        }
        System.out.println(ans);
    }


    //握手问题的扩展二：
    //如果两个人的编号的数互质，则不握手
    //互质的定义是两个数的最大公约数为 1
    public static void main(String[] args) {
        int ans = 0;
        for (int i = 1; i <= 50 ; i++) {
            for (int j = i + 1; j <= 50 ; j++) {
                if(gcd(i,j) == 1){
                    continue;
                }
                ans += 1;
            }
        }
        System.out.println(ans);
    }

    private static int gcd(int a, int b) {
        if(b == 0) return a;
        return gcd(b,a % b);
    }

}
